package com.zxl.study.confusion.v4;

import com.zxl.study.confusion.OrderDetailModel;

import java.util.List;

/**
 * @auther zxl
 * @create 2023-08-13 15:47
 *
 * 保存订单数据的 职责对象
 * 保存订单数据的 职责对象
 */
public class SaveOrderDataHandler extends  SaveOrderHandler{
    @Override
    public void handleRequest(SaveOrderRequestModel saveOrderRequestModel)
    {
        //处理自己的业务

        //1：保存订单的主记录，得到主记录的uuid
        Long orderMainUuid = 100L;//OrderMainService.create()
        //2：保存订单明细记录
        //this.saveOrderDetail(orderMainUuid,orderDetailModelList);

        System.out.println("SaveOrderDataHandler=========>");

        //3：返回数据orderMainUuid
        saveOrderRequestModel.setResultOrderMainUuid(orderMainUuid);

        //最后一步，调用父类的方法，向后传递请求对象
        super.handleRequest(saveOrderRequestModel);
    }

    /**
     * 保存订单明细记录
     * @param orderMainUuid 订单主记录的uuid
     * @param orderDetailModelList 要保存的订单明细记录的list
     */
    //功能方法
    private void saveOrderDetail(Long orderMainUuid, List<OrderDetailModel> orderDetailModelList){
        //2.1：循环设置每个DetailModel，设置他们所属的orderMainUuid
        for(OrderDetailModel orderDetailModel : orderDetailModelList){
            orderDetailModel.setOrderMainUuid(orderMainUuid);
        }
        //2.2：批量保存多条明细记录
        //调用：OrderDetailService.batchCreate(list);
    }
}
